<?php

namespace app\admin\controller\kzvote\gift;

use app\common\controller\Backend;
use app\common\model\kzvote\Person;
use app\common\model\kzvote\Vote;
use think\Db;
use think\Exception;
use think\exception\PDOException;
use think\exception\ValidateException;

/**
 * @icon fa fa-circle-o
 */
class Order extends Backend
{
    protected $relationSearch = true;

    /**
     * Order模型对象
     * @var \app\common\model\kzvote\gift\Order
     */
    protected $model = null;

    public function _initialize()
    {
        parent::_initialize();
        $this->model = new \app\common\model\kzvote\gift\Order;
        $this->view->assign("statusList", $this->model->getStatusList());
    }



    /**
     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
     */

    /**
     * 查看
     */
    public function index()
    {
        //当前是否为关联查询
        $this->relationSearch = true;
        //设置过滤方法
        $this->request->filter(['strip_tags', 'trim']);
        if ($this->request->isAjax()) {
            //如果发送的来源是Selectpage，则转发到Selectpage
            if ($this->request->request('keyField')) {
                return $this->selectpage();
            }
            list($where, $sort, $order, $offset, $limit) = $this->buildparams();

            $list = $this->model
                ->with(['vote', 'person'])
                ->where($where)
                ->order($sort, $order)
                ->paginate($limit);

            foreach ($list as $row) {

                $row->getRelation('vote')->visible(['name']);
                $row->getRelation('person')->visible(['name']);
            }

            $money = $this->model->with(['vote', 'person'])
                ->where('order.status','20')
                ->where('order.type',1)
                ->where($where)
                ->sum('money');

            $result = array("total" => $list->total(), "rows" => $list->items(), 'money'=>$money);

            return json($result);
        }
        return $this->view->fetch();
    }

    //删除未付款的订单
    public function delunpay()
    {
        if ($this->model->where('status', '10')->delete()) {
            $this->success('删除成功！');
        } else {
            $this->error('删除失败！');
        }
    }

    /**
     * 后台给作品赠送礼物
     */
    public function give()
    {
        $param = $this->request->param();
        if ($this->request->isPost()) {
            $params = $this->request->post("row/a");
            if ($params) {
                $params = $this->preExcludeFields($params);
                $result = false;
                Db::startTrans();
                try {
                    $arr = ["蟾宫客", "姚雨辰", "波斯猫", "人保财险", "狼毒花", "希希", "李小欠", "李沛洺", "Meet",
                            "郝春玲", "金马", "金马", "_", "源瑶荷莹", "良哥", "闫嘉翊", "舍", "西铭", "Sean", "Robert", "成功",
                            "大李", "张翔宇", "公平与正义",
                            "可可", "北海汽修", "_小喜小熊_张加仁～李雨河", "coco", "汗血宝马", "平步青云可摘星", "淼淼", "随缘", "李冬梅",
                            "越来越好", "万钰一长流水", "马到成功", "前程似锦", "李欣播", "李桂芝", "高洪霞",
                            "小西米", "劉遠瓚", "凯旋", "女人__梦", "刘娜", "汪小雨_自律ing", "赵家德", "丽杰", "蓄势腾飞",
                            "黄炳捷", "九哥", "刘湘琴", "董凝__律师经纪人", "涛声依旧", "蒋正威",
                            "黄金1-薛", "熏五空", "A_格式化重启", "沈", "轻舞飞扬", "吴玉柱", "等等", "孙珍珠",
                            "A.毒_特.A", "郭鹏", "__董小姐_", "张洪兵", "曹伟", "霖玺", "于东生", "刘涵睿",
                            "李春彦", "云淡风轻～静宸", "星伟", "凹籽恬恬係", "小莉", "熵（全民学熵）", "晨", "超", "Kris", "婷婷", "聚缘", "吾行素养",
                            "大杨(好人一生平安幸福)", "郑小虎（玄明）", "东北一姐", "宝迪-王立锋", "R£.", "久目", "金美～秋天的雪", "刘佳乾：玛赫枪造福众生",
                            "赵辉", "高山流水", "王咏晟", "金骏眉", "小子", "精致生活，由此开始", "前台", "ღ_勿扰", "何传志", "虎啸乾坤",
                            "天海祐希", "华强", "安迪", "晓丽", "互联网架构师", "张旭", "刘美荣", "易哥", ".", "张玉增",
                            "清风", "軍魂", "梅善海", "赵慧英", "徐靖昌",
                            "Liu宇航", "杨璐羽-1334", "怡均867", "张洪先", "酬勤盛泽", "磐龙", "孙波",
                            "朝阳", "宇光", "佟佩华", "张金亮", "芒果", "海洋", "張金亮",
                            "__上善若水__卍141319", "吕文学－宋文", ".", "红颜", "唐文坤", "韩季廷", "松柏", "王丹",
                            "丁虹元", "李赢", "宝斯琴", "李昕容～自愿者", "陈乐祥", "五谷丰登", "S",
                            "王昕", "曲运凤", "梦闯闯", "圣哥", "子雅", "娜娜", "曲淑珍", "文渊~(律师经纪人)", "厚德载福", "谢文东", "王荣才",
                            "段伟", "德 道", "张君利", "杨雅萱45", "燕子", "王毅", "李总", "禅.修.风水", "侠客", "甄妮", "齐", "盛静卫", "Vicky",
                            "金姝妤", "孙思晗～金装律师", "日暮霞光", "心如止水", "惠雅女神部落-金姝妤", "家豪~农家特产", "峰哥", "__玥淋_", "定制链·吴",
                            "大顺", "刘宝聪", "天官赐福卍141319卍", "不忘初心", "嘉一", "张焕生", "老朱", "蔡林君", "褶子撩任", "老大", "东东", "风云",
                            "姜守清", "静心", "王者归来", "越玩越野", "陈律师", "纳豆人付艳", "姚金豆", "孟祥季", "圲泓", "小葡萄", "邢珍", "李铭霞",
                            "中国建筑（十少）", "步步高升", "执念", "张增", "秀秀", "钱多多", "晨曦", "王鐿錡快乐__就好", "魏峰卿",
                            "红姐", "咱们都一样~_",
                            "Fa  dong  Wang，不忘初", "_____Mr.Wang", "老爷子", "杨珂", "艾多美", "布衣后裔2016",
                            "监康智能鞋", "不再让梦枯萎メo", "老杨【CTU】", "佳鸿建筑-非诚勿扰", "无极丨（神草）全网营销王者",
                            "杨苗", "檀高正", "海的世界。。", "王来", "绿色心情×",
                            "吴成真", "纳豆人俊杰", "刘昱均", "张庆", "吴仙德",
                            "王桂军", "梁渌闲", "꫞꯭烈酒浓烟꫞", "谭云淼", "冯美丽", "爱我中华", "小屁孩", "一米阳光413", "吴芳秘乐",
                            "姜文峰", "达萧子", "芫（yuan）灏（hao）", "于柏生", "肖林成", "真水无香", "释永鹤",
                            "王存根", "燕子", "胡善", "张新明", "金群英1413134", "润泽天下苍生，", "iHOME爱家布艺", "張富杰",
                            "聚友陈人脉", "聚缘阁_慧德__（蒋志锌）", "夢飞", "孟庆龙", "小飞鱼", "铃", "苏涛", "苏涛a",
                            "开心笑", "子森", "文升", "行如风", "陈昇", "雨谷", "爱笑的女孩", "释然", "知行合一", "静心", "圣源", "庞琳法律咨询",
                            "笑言", "希腊神话", "陈树军91413", "周玉关", "a.feng. 阿峰",
                            "黎民之生 陈骊生", "杜鹃", "铁东", "AB成功缘起", "万物皆有价值", "李毅", "迪", "延续", "相信自己", "甜心小宝贝",
                            "心灵温度计", "赵庆春", "于帆cium", "刘瑞嫒", "谷金娣", "田桂英", "A婉含", "明天会更好。", "岩", "老佛爷",
                            "雁州", "知心大姐", "快乐每一天", "张红", "爱华cium", "唐宁", "杜海", "窦金兰", "大中华", "A.一缕意念", "王艺洋",
                            "徐兰~瑜伽舞蹈", "王淑萍", "源阁", "程丽艳", "马籽涵", "孙菡泓",
                            "A雪豹king美猴王55555", "生命", "天涯海角织梦人", "_", "曲", "康文大成共享", "玩赚金融（pOs机）曲",
                            "邢在玲", "毕建勇", "A", "纪思宇", "白小白", "陈丽", "风轻云淡", "老毛豆", "张亚君", "季洁", "放飞梦想", "王维仁",
                            "家利", "易道：法律+税筹经纪人", "越哥", "于越~策划人", "徐锟明天更美好", "璐", "Eon:", "ꪝ德宏", "星空一梦",
                            "海鸥", "菩提的微笑", "享瘦", "李洁", "李秀明", "孟律师", "XiaoWei Summer", "孟庆全", "快乐人生",
                            "咸了，加点盐", "生辉口腔", "有容乃大", "强哥", "闫一念", "华丽转身", "AA_张小旭",
                            "相 识", "蓝色海洋", "偉", "晓丽", "高涵睿",
                            "陈晨", "厚德载物", "姜成", "孙健", "蔷薇", "蕴萱", "赵_波__", "李笠", "净水丽方及时雨",
                            "初心", "8仙过海__灌死7个", "_鸿人帮联合发起人", "Have a nice day .", "和悦", "黎明", "王者归来", "富足爱笑的爱平女神",
                            "仙女下凡", "不倒翁", "魏娅轩", "何汇东", "張瑩瑩", "何汇东", "瓦房店全羊：", "思漫姐姐__泰国佛牌",
                            "刘琴", "玺庆", "A、人生", "王广义", "_一҈生҈只҈爱҈娜҈一҈人҈", "吴洪梅~大成共享1314", "大龍纹身", "诗宁",
                            "肥仔", "霍文武", "靠谱", "自由飞翔", "高方", "难得糊涂", "王明霞", "徐維呈", "雨后初晴", "武 财 神",
                            "高跃晏（640.370）", "森林绿洲-栋梁131419", "蔺欣峰", "静待一世花开", "堃竹", "李附励", "杨晓东", "老虎", "俪__颖", "钻石",
                            "费日明 （费琬恩）820.640", "琳琳", "鈺林", "净荷刘迎春", "龙哥", "__丹增卓玛413_", "宁静致远", "杨连俊",
                            "国沣祠820.650", "郭釔成", "售后客服-饱饱", "绿水青山", "付跃", "_", "启航种养联合社", "恩诺_～抖音招主播", "陆民",
                            "胡桂琴141319", "韩侑晏", "老沈头", "oo0蟈蟈oO", "果酱少女", "阎虹延", "中诚海跃.杨金源", "A. Mrs   Wang", "【月微醺】",
                            "钱多", "姚姚", "诚信赢德天下（财哥）"];

                    $Gift = \app\common\model\kzvote\gift\Gift::get($params['gift_id']);

                    $Vote = Vote::get($params['vote_id']);
                    $Vote->setInc('count', $Gift['num']);

                    $Person = Person::get($params['person_id']);
                    $Person->setInc('count', $Gift['num']);

                    $params['user_id']
                                        = 0;
                    $params['name']     = $Gift['name'];
                    $params['image']    = $Gift['image'];
                    $params['money']    = $Gift['money'];
                    $params['num']      = $Gift['num'];
                    $params['order_no'] = date('YmdHis') . rand(1000, 9999);
                    $params['status']   = '20';
                    $params['type']     = 2;
                    $params['nickname'] = $arr[array_rand($arr)];
                    $params['admin_id'] = $Vote['admin_id'];
                    $result             = $this->model->allowField(true)->save($params);

                    Db::commit();
                } catch (ValidateException $e) {
                    Db::rollback();
                    $this->error($e->getMessage());
                } catch (PDOException $e) {
                    Db::rollback();
                    $this->error($e->getMessage());
                } catch (Exception $e) {
                    Db::rollback();
                    $this->error($e->getMessage());
                }
                if ($result !== false) {
                    $this->success();
                } else {
                    $this->error(__('No rows were updated'));
                }
            }
            $this->error(__('Parameter %s can not be empty', ''));
        }
        $this->view->assign("param", $param);
        return $this->view->fetch();
    }
}
